A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, computing devices include layer two devices that operate within the second layer (L2) of the Open Systems Interconnection (OSI) reference model (i.e., the data link layer) and layer three devices that operate within the third layer (L3) of the OSI reference model (i.e., the network layer). These computing devices communicate data by dividing the data into small blocks called packets. Certain devices within the network, such as routers, maintain routing information that describes routes through the network. In this way, the packets may be individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form.
Network devices within computer networks often include a routing engine that provides control plane functionality for the network device. The routing engine provides control plane functions storing network topology in the form of routing tables, executing routing protocols to communicate with peer routing devices and maintain and update the routing tables, and providing a management interface to allow user access and configuration of the network device. The routing engine maintains routing information that describes a topology of a network, and derives a forwarding information structure (e.g., a forwarding information base (FIB)) in accordance with the routing information. In general, the routing information represents the overall topology of the network and defines routes to destinations/prefixes within the network.
Forwarding information is generated based on selection of certain routes within the network and maps packet key information (e.g., destination information and other select information from a packet header) to one or more specific next hops and ultimately to one or more specific output interfaces of interface cards of the network device. Typically, the routing engine installs forwarding structures into each of the PFEs to control forwarding of traffic within the data plane. This allows the FIB in each of PFEs to be updated without degrading packet forwarding performance of routing node. In some instances, the routing engine may drive separate FIBs which are copied to respective PFEs.